package com.mikufufu.blog.model.vo.api;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 网站信息
 * 
 */
@Data
public class WebSiteVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "网站标题")
    private String title;

    @ApiModelProperty(value = "网站描述")
    private String description;

    @ApiModelProperty(value = "版权信息")
    private String copyright;

    @ApiModelProperty(value = "备案信息")
    private String icp;

    @ApiModelProperty(value = "站长头像")
    @Size(max = 255)
    private String avatar;

    @ApiModelProperty(value = "站长昵称")
    private String nickname;

    @ApiModelProperty(value = "站长签名")
    private String signature;

    @ApiModelProperty(value = "网站网站链接信息")
    private List<WebLinkInfo> webLinkInfo;

    @ApiModelProperty(value = "前端技术栈")
    @NotNull
    private List<String> frontendStack;

    @ApiModelProperty(value = "后端技术栈")
    @NotNull
    private List<String> backendStack;

    @ApiModelProperty(value = "数据库")
    @Size(max = 255)
    private String database;

    @ApiModelProperty(value = "服务器服务商")
    @Size(max = 255)
    private String server;

    @ApiModelProperty(value = "部署文档链接")
    @Size(max = 255)
    private String deployUrl;

    @ApiModelProperty(value = "网站介绍")
    private String websiteInfo;

    @ApiModelProperty(value = "网站创建时间")
    private StatisticsVO statistics;

    @ApiModelProperty(value = "网站部署完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date deployTime;

    @ApiModelProperty(value = "网站部署的操作系统")
    private String system;
}
